package com.boss.salary.dao;

import com.boss.framework.dto.PaginationDTO;
import com.boss.salary.entity.AgencyInfo;
import com.boss.salary.entity.SalaryBaseItemize;
import com.boss.sys.ca.user.dto.UserDTO;

import java.util.List;
import java.util.Map;

public interface ISalaryBaseItemizeDao {

    /**
     * 分页数据
     *
     * @param paginationDTO 分页条件
     * @param queryParam    查询条件
     * @return
     */
    List<SalaryBaseItemize> querySalaryBaseItemizePage(PaginationDTO paginationDTO, Map<String, Object> queryParam);


    /**
     * 获取数据量
     *
     * @return
     */
    int querySalaryBaseItemizeCount(Map<String, Object> queryParam);

    /**
     * 查询单机构下数据
     *
     * @param queryParam 查询条件
     * @return
     */
    List<SalaryBaseItemize> querySalaryBaseItemize(Map<String, Object> queryParam);

    /**
     * 人员类型
     *
     * @return
     */
    List<Map<String, Object>> queryBaseDataList(Map<String, Object> queryParam);

    /**
     * 收款帐号
     *
     * @return
     */
    List<Map<String, Object>> queryPayeeAcctList(UserDTO userDTO );

    /**
     * 收款项
     *
     * @return
     */
    List<Map<String, Object>> querySalaryBasedataList(String agencyId,UserDTO userDTO);

    /**
     * 新增
     *
     * @param salaryBaseItemize
     */
    void insertSalaryBaseItemize(SalaryBaseItemize salaryBaseItemize,UserDTO userDTO);

    /**
     * 批量新增
     * @param salaryBaseItemizes
     * @param userDTO
     */
    void bacthinsertSalaryBaseItemize(List<SalaryBaseItemize> salaryBaseItemizes,UserDTO userDTO);
    /**
     * 根据id删除
     *
     * @param id
     */
    void deleteSalaryBaseItemize(String id);

    /**
     * 修改
     *
     * @param salaryBaseItemize
     */
    void updateSalaryBaseItemize(SalaryBaseItemize salaryBaseItemize);

    /**
     * 根据条件查询agencyId，用于检查批量新增
     *
     * @param salaryBaseItemize
     */
    List<String> salaryBaseItemizeCheck(SalaryBaseItemize salaryBaseItemize);

    List<AgencyInfo> queryAgencyInfo(List<String> childrenId,String salaCardBank,String personState);
}
